"""
分片：分片与索引类似，都可以获取序列中的元素，区别是索引只能获取单个元素，而分片可以获取一定范围内的元素。
语法：分片通过冒号隔开的两个索引来实现，其语法格式如下
    slice[start:end:step]
    slice：表示序列
    start：表示起始索引，缺省(缺少或者省略)时分片从序列中的第一个元素开始
    end：表示结束索引（不含），缺省时分片到序列的最后一个元素结束；
    step：表示步长，缺省时为1，不能为0。
示例：
分片方式	        说 明	                                        结 果
str2[1:]	    获取str2中从索引1开始到最后的所有元素	            'bcdefg'
str2[:3]	    获取str2中从索引0到索引3（不含）的所有元素	        'abc'
str2[1:3]	    获取str2中从索引1到索引3（不含）的所有元素	        'bc'
str2[:−1]	    获取str2中从索引0开始到最后（不含）的所有元素	        'abcdef'
str2[−3: −1]	获取str2中从索引−3开始到最后（不含）的所有元素	        'ef'
str2[−3:]	    获取str2中最后三个元素	                            'efg'
str2[:]	        获取str2中所有元素	                            'abcdefg'
str2[::2]	    获取str2中步长为2时的所有元素	                    'aceg'
str2[2:6:2]	    获取str2中步长为2时从索引2到索引6（不含）的所有元素	'ce'

说明：Python中步长不能设置为0，但可以是负数。当步长为负数时，起始索引必须大于结束索引，即分片从右往左提取元素。
"""
str2 = 'abcdefg'
# print(str2[1:])
# print(str2[:3])
# print(str2[1:3])
# print(str2[:-1])
# print(str2[-3:-1])
# print(str2[-3:])
# print(str2[:])
# print(str2[::2])
# print(str2[2:6:2])
# str3 = str2[7:0:-1]				#str3为'gfedcb'
# str4 = str2[-1:-8:-1]				#str4为'gfedcba'
# str5 = str2[::-1]					#str5为'gfedcba'
# print(str3)
# 作用一：反转字符串
print(str2[::-1])
#作用二：取特定位置得字符串
print(str2[4:5])  #取e
#作用三：取奇偶位置得字符
print(str2[1::2]) #取奇数位
print(str2[::2]) #取偶数位

# 使用技巧
# 1、检查回文字符串  使用函数
def is_palindrome(strings):
    return strings[::-1] == strings
print(is_palindrome('radar')) #true
print(is_palindrome('python'))

# 2、提取文件扩展名
filename = "document.pdf"
extension = filename[filename.rfind('.')+1:]
print(extension)

# 3、每隔n个字符分割字符串
text5 = '1234567890'
n = 3
result = [text5[i:i+n] for i in range(0, len(text5), n)]
# 0 1 2 3 4 5 6 7 8 9     0   3   6   9
print(result)# 123 456 789 0